home *** CD-ROM | disk | FTP | other *** search
/ Kit PC World De Ampliacion De Windows 95 / Kit PC World de ampliacion de Windows 95.iso / internet / sweeper / samples / olecon~1 / controls / fontco~1 / fontco~1.h < prev    next >
Text File  |  1995-11-25  |  4KB  |  130 lines

  1. //=--------------------------------------------------------------------------=
  2. // FontColorCtl.H
  3. //=--------------------------------------------------------------------------=
  4. // Copyright  1995  Microsoft Corporation.  All Rights Reserved.
  5. //
  6. // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
  7. // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
  8. // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
  9. // PARTICULAR PURPOSE.
  10. //=--------------------------------------------------------------------------=
  11. //
  12. // class declaration for the FontColor control.
  13. //
  14. #ifndef _FONTCOLORCONTROL_H_
  15.  
  16. #include "IPServer.H"
  17. #include "CtrlObj.H"
  18. #include "FontColorInterfaces.H"
  19. #include "Dispids.H"
  20.  
  21. #include <olectlid.h>
  22.  
  23. typedef struct tagFONTCOLORCTLSTATE {
  24.  
  25.     OLE_COLOR ocForeColor;
  26.  
  27. } FONTCOLORCTLSTATE;
  28.  
  29. //=--------------------------------------------------------------------------=
  30. // CFontColorControl
  31. //=--------------------------------------------------------------------------=
  32. // our control.
  33. //
  34. class CFontColorControl : public COleControl, public IFontColor, public ISupportErrorInfo {
  35.  
  36.   public:
  37.     // IUnknown methods
  38.     //
  39.     DECLARE_STANDARD_UNKNOWN();
  40.  
  41.     // IDispatch methods
  42.     //
  43.     STDMETHOD(GetTypeInfoCount)(UINT *pctinfo) {
  44.         return CAutomationObject::GetTypeInfoCount(pctinfo);
  45.     }
  46.     STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo **ppTypeInfoOut) {
  47.         return CAutomationObject::GetTypeInfo(itinfo, lcid, ppTypeInfoOut);
  48.     }
  49.     STDMETHOD(GetIDsOfNames)(REFIID riid, OLECHAR **rgszNames, UINT cnames, LCID lcid, DISPID *rgdispid) {
  50.         return CAutomationObject::GetIDsOfNames(riid, rgszNames, cnames, lcid, rgdispid);
  51.     }
  52.  
  53.     // ISupportErrorInfo methods
  54.     //
  55.     DECLARE_STANDARD_SUPPORTERRORINFO();
  56.  
  57.     // IFontColor methods
  58.     //
  59.     // TODO: copy over the method declarations from FontColorInterfaces.H
  60.     //       don't forget to remove the PURE from them.
  61.     //
  62.     STDMETHOD(get_Font)(IFontDisp FAR* FAR* pFont);
  63.     STDMETHOD(put_Font)(IFontDisp FAR* pFont);
  64.     STDMETHOD(get_ForeColor)(OLE_COLOR FAR* pocForeColor);
  65.     STDMETHOD(put_ForeColor)(OLE_COLOR ocForeColor);
  66.     STDMETHOD_(void, AboutBox)(void);
  67.  
  68.     // OLE Control stuff follows:
  69.     //
  70.     CFontColorControl(IUnknown *pUnkOuter);
  71.     virtual ~CFontColorControl();
  72.  
  73.     // static creation function.  all controls must have one of these!
  74.     //
  75.     static IUnknown *Create(IUnknown *);
  76.  
  77.     // we have to implement this here for the benefit of font, picture and
  78.     // OLE_COLOR properties.
  79.     //
  80.     STDMETHOD(Invoke)(DISPID, REFIID, LCID, WORD, DISPPARAMS *, VARIANT *, EXCEPINFO *, UINT *);
  81.  
  82.   private:
  83.     // overridables that the control must implement.
  84.     //
  85.     STDMETHOD(LoadBinaryState)(IStream *pStream);
  86.     STDMETHOD(SaveBinaryState)(IStream *pStream);
  87.     STDMETHOD(LoadTextState)(IPropertyBag *pPropertyBag, IErrorLog *pErrorLog);
  88.     STDMETHOD(SaveTextState)(IPropertyBag *pPropertyBag, BOOL fWriteDefault);
  89.     STDMETHOD(OnDraw)(HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, HDC hicTargetDev);
  90.     virtual LRESULT WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
  91.     virtual BOOL    RegisterClassData(void);
  92.  
  93.     virtual HRESULT InternalQueryInterface(REFIID, void **);
  94.     virtual void    BeforeCreateWindow(void);
  95.  
  96.     // private state information.
  97.     //
  98.     FONTCOLORCTLSTATE m_state;
  99.     IFont    *m_pFont;
  100. };
  101.  
  102.  
  103. // TODO: if you have an array of verbs, then add an extern here with the name
  104. //       of it, so that you can include it in the DEFINE_CONTROLOBJECT.
  105. //       ie.  extern VERBINFO m_FontColorCustomVerbs [];
  106. //
  107. extern const GUID    *rgFontColorPropPages [];
  108. DEFINE_CONTROLOBJECT(FontColor,
  109.     &CLSID_FontColor,
  110.     "FontColorCtl",
  111.     CFontColorControl::Create,
  112.     1,
  113.     &IID_IFontColor,
  114.     "FontColor.HLP",
  115.     &DIID_DFontColorEvents,
  116.     OLEMISC_SETCLIENTSITEFIRST|OLEMISC_ACTIVATEWHENVISIBLE|OLEMISC_RECOMPOSEONRESIZE|OLEMISC_CANTLINKINSIDE|OLEMISC_INSIDEOUT,
  117.     RESID_TOOLBOX_BITMAP,
  118.     "FontColorWndClass",
  119.     1,
  120.     rgFontColorPropPages,
  121.     0,
  122.     NULL);
  123.  
  124.  
  125.  
  126. #define _FONTCOLORCONTROL_H_
  127. #endif // _FONTCOLORCONTROL_H_
  128.  
  129.  
  130.